package com.jk.service;


import com.jk.dao.PayUserWalletDao;
import com.jk.pojo.PayLog;
import com.jk.pojo.PayUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


import java.util.Date;
import java.util.UUID;

/**
 * Created by XSJ on 2017/
 * 12/26.
 */
@Service
public class PayUserWalletServiceImpl implements PayUserWalletService {

    @Autowired
    private PayUserWalletDao  payUserWalletDao;


    public int withdrawUserBalanc(Double money, String bankNum, String useraccount) {
        /**定义一个全局变量  用来存放银行余额修改是否成功的数据*/
        int b = 0;
        /**修改账户余额 如果修改成功则返回修改成功几条数据*/
        int a =payUserWalletDao.rechargeToReduceUserBalanc(money,useraccount);
        /**判断是否修改成功 修改成功则进行修改银行账户余额*/
        if(a>0){
            b = payUserWalletDao.rechargeToAddBankMoney(money,bankNum);
        }

        /**用于记录交易日志*/
        PayLog log = new PayLog();
        /**赋值交易记录ID*/
        log.setLogId(UUID.randomUUID().toString().replaceAll("-",""));
        /**日志类型  “1”  为充值到余额  "2" 为提现到银行卡功能 */
        log.setLogType(2);
        /**日志内容*/
        log.setLogInfo("支付宝账号"+useraccount+"提现到银行卡"+bankNum+"提现金额为"+money+"元");
        /**存储时间*/
        log.setSaveTime(new Date());
        /**交易金额*/
        log.setDealAmont(money);
        /**是否成功 1 成功  2 失败 */
        if(b>0){
            log.setLogSuccess(1);
        }else{
            log.setLogSuccess(2);
        }
        /**流水单号*/
        log.setRunNumber("ZFB-"+new Date().getTime()+(int)(Math.random()*10000000));
        /**根据用户账号查询用户ID*/
        PayUser user = payUserWalletDao.queryUserBalance(useraccount);
        /**操作人ID*/
        log.setOperatorId(user.getUseraccount());
        /**用户ID*/
        log.setUserId(user.getUserid());
        /**是否回收 1 为不回收 2 为回收*/
        log.setLogStatus(1);
        /**对日志进行新增*/
        payUserWalletDao.rechargeAddLog(log);


        return b;
    }
}
